Radiocommunication module that runs a main software program the low-level layers of which are open to a cleint software program which is also run by the module

ABSTRACT

The invention relates to a radiocommunication module of the type that hosts and runs a main software program comprising applications that are used to manage the operating system (OS), radiocommunications (layer 3 GSM) and peripherals (HWL). According to the invention, each of said applications is associated with a set of level 1 run functions. Moreover, the inventive radiocommunication module hosts and runs at least one client software program comprising at least oen client application which is associated with a set of level 1 source functions. The main software program and/or the client software program comprise(s) a level 1 interface application that can be used to interface the level 1 source functions, which are associated with the client application, with the level 1 run functions, which are associated with the operating system management application and with at least one of the applications used to manage radiocommunications and peripherals. In this way, access to at least some of the functionalities of the main software program is provided to at least one client application.

The field of the invention is that of radio-communication systems,particularly, but not exclusively, in accordance with the GSM (GlobalSystem for Mobile Communications), the DCS 1800 (Digital Cellular System1800 MHz), the PCS 1900 (Personal Communication System), the GPRS(General Packet Radio Service), or the UMTS (Universal MobileTelecommunication System) standard.

More accurately, the invention relates to a radiocommunication module.It will be remembered that the radiocommunication module is an essentialelement of a radio telephone.

Customarily (first application), the radio communication module isincluded in a terminal or ME (Mobile Equipment) which engages with a SIM(Subscriber Identity Module) card.

Other applications have already been envisaged for the aforementionedradiocommunication module.

In particular a proposal has been made (second application) for theradiocommunication module to be incorporated into devices other thanradiocommunication terminals, but that nonetheless require a wirelesscommunication functionality. By way of example, we may cite telemetrydevices (meter readings), alarm devices or again bank card readerdevices.

A proposal has also been made (third application) for theradiocommunication module to be provided in an independent form: it isthen known as a modem. A modem of this kind does not include anyman/machine interface hardware component (screen, keyboard, loudspeaker,etc). It is intended to engage with third party equipment (supporting acustomer software program), which does include man/machine interfacehardware components. The third party equipment may particularly, but notexclusively, be a microcomputer.

Typically, the radiocommunication module hosts and runs a main softwareprogram including:

-   -   an operating systems management application, also known as an        “OS” (Operating System) block, which manages the system aspects        such as the task manager, the memory manager, the time delay        manager, etc.;    -   a radiocommunication management application, also known as a        “layer 3 GSM” block, which manages the network aspects such as        outgoing and incoming call management, short text message        receive and send management, etc. It will be noted that the        “layer 3 GSM” block is able not to observe the totality of the        GSM recommendations for 3 layers. It may also comply with        another standard (DCS 1800, PCS 1900, GPRS, UMTS, etc);    -   an application for managing the peripheral devices that can be        connected to the radiocommunication module, also known as an        “HWL” (HardWare Layer) block. By peripheral devices are meant        particularly, but not exclusively, a screen, a keyboard, a        microphone, a loudspeaker, a serial bus, a GPIO (General Purpose        Inputs/outputs) component, a battery, a SIM reader, etc;    -   a proprietary application, using the aforementioned three “OS”,        “Layer 3 GSM” and “HWL” blocks in order to offer the user a        plurality of functionalities specific to a device incorporating        the radiocommunication module. It will be remembered that this        device is for example a radio telephone (aforementioned first        application), an “other device” (aforementioned second        application) or else a modem (aforementioned third application).

In the present case, the main software program is a proprietary softwareprogram, developed by the radiocommunication module manufacturer. Itincludes a binary file containing particularly the proprietaryapplication as well as the aforementioned “OS”, “Layer 3 GSM” and “HWL”blocks. Conventionally, this binary file is the result of a compilationof a plurality of source files (for example in “C” language), then alink editing between the compiled source files (also known as objectfiles).

The current technique, according to which the main software program is aproprietary software program, has several drawbacks.

First of all, it does not allow a customer to develop his ownapplication himself. Indeed, the customer has of necessity to have hisapplication developed by the manufacturer of the radiocommunicationmodule (in order to obtain the aforementioned proprietary application).

Another drawback of the current technique is that if the customer wishesto make modifications to the proprietary application, he again has ofnecessity to go through the manufacturer of the radiocommunicationmodule. The customer is therefore not in control of the changes hewishes to make to his application and has to rely permanently on theresources of the manufacturer of the radiocommunication module.

The particular objective of the invention is to overcome these differentdrawbacks of the prior art.

More accurately, one of the objectives of the present invention is toprovide a technique that allows a customer to develop his ownapplication, then to embed it and to run it using a radiocommunicationmodule. This application, known as a “customer application”, must beable to be developed by the customer himself, independently of theradiocommunication module manufacturer. It must replace theaforementioned “proprietary application”, within the radiocommunicationmodule.

Another objective of the invention is to allow the customer to develop a“distributed” customer application, including a plurality of “task”applications carrying out a number of real-time tasks, among which thecustomer is able to specify priorities.

Another object is of the invention is to provide software architecture,within the radiocommunication module, which makes it possible to supporta new radiocommunication module drive technique, which isstraightforward and inexpensive (in terms of hardware and energyconsumption).

It will be remembered that the current radiocommunication module controltechnique using third party equipment has several drawbacks. First ofall, it requires a double set of resources (processor and memory).Indeed, the radiocommunication module includes a processor and a memory(first set of resources) and the third party equipment also has aprocessor and a memory (second set of resources). The aforementionedcurrent technique is therefore expensive in terms of hardware and energyconsumption. Another drawback of the aforementioned current technique isthat the radiocommunication module is completely under the control ofthe third party equipment. Indeed the customer control software program,hosted and run by the third party equipment, is the “master”, whereasthe main software program, hosted and run by the radiocommunicationmodule, is the “slave”.

According to another objective of the invention, the newradiocommunication module control technique, supported by the newsoftware architecture according to the invention, allows theradiocommunication module, when controlled by third party equipment, tobe able to supervise (including act on) the operation of this control.In other words, the wish is that the radiocommunication module shouldnot only play the role of a slave.

Yet another objective of the invention is, in the context of theaforementioned new radiocommunication module control technique, tofacilitate the task of the customer in the process of developing his owncustomer application.

Another objective of the invention is to propose a straightforward andeffective solution to the dialogue problems between customersub-applications (main and secondary) arising from the implementation ofa particular embodiment of the present invention in which:

-   -   the customer application is “distributed” in the aforementioned        sense and includes:    -   a first “task” application, carrying out a first real-time task        of executing control commands (for example AT commands),    -   a second “task” application, carrying out a second real-time        task such that the second “task” application plays the role of        the customer control application and/or the role of the customer        supervision application;    -   the second “task” application itself includes:    -   a main customer sub-application,    -   at least one secondary customer sub-application.

These different objectives, as well as others which will emergesubsequently, are met in accordance with the invention by using aradiocommunication module, of the type that hosts and runs a mainsoftware program including: an operating systems (OS) managementapplication, a (layer 3 GSM) radiocommunication management applicationand an application for managing the peripheral devices that can beconnected to the radiocommunication module (HWL). According to theinvention, each of said applications included in the main softwareprogram is associated with a set of level 1 executive functions. Saidradiocommunication module additionally hosts and runs at least onecustomer software program including at least one customer application,associated with a set of level 1 source functions. Said main softwareprogram and/or said customer software program include(s) a level 1interface application, allowing the level 1 source functions, associatedwith said customer application, to interface with the level 1 executivefunctions, associated with said operating system management applicationand with at least one of said radiocommunication management andperipheral device management applications. In this way said at least onecustomer application has access opened up to at least some of thefunctionalities of the main software program.

The general principle of the invention therefore consists in using twosoftware programs (main and customer) that are able to interacttogether, and in hosting, on the embedded customer software program (atleast) one customer application. In this way, the main software programno longer includes a proprietary main application. In other words accessto lower layers of the radiocommunication module (the aforementioned“OS”, “layer 3 GSM” and “HWL” blocks), developed by theradiocommunication module manufacturer, is open to customerapplications, developed by customers. The series of these lower layersis sometimes also called “Open-Stack” in the remainder of thedescription.

The new technique according to the invention may be seen as a softwareplatform that allows customers to develop their own customerapplications and to download them into the radiocommunication modules.

Customers are able to develop, independently of the radiocommunicationmodule manufacturer, their own applications and then to embed them andhave them run by the radiocommunication modules. Likewise, customers areable to modify or develop their customer applications without thisrequiring the intervention of the radiocommunication modulemanufacturer.

In this way, we may distinguish in accordance with the present inventionthe three following interfacing types, via the level 1 interfaceapplication:

-   -   interfacing of the customer application or applications with the        “OS” and “layer 3 GSM” blocks;    -   interfacing of the customer application or applications with the        “OS” and “HWL” blocks;    -   interfacing of the customer application or applications with the        “OS”, “layer 3 GSM” and “HWL” blocks.

It will be noted that the customer application or applications are ableto be contained in the customer software program in a number of forms:

-   -   either, there is a single customer application, contained in the        customer software program in the form of a binary file. The        level 1 interface application is in this case contained either        in this binary file (which assumes that the object file        containing the customer application has been subject to link        editing with the object file containing the level 1 interface        application), or in another binary file;    -   or there are a number of customer applications, contained in the        customer software program in the form of the same binary file.        The level 1 interface application is in this case contained        either in this binary file (which assumes that the object files        containing the customer applications have been subject to link        editing with the object file containing the level 1 interface        application), or in another binary file;    -   or there are a number of customer applications, contained in the        customer software program in the form of a number of binary        files (each binary file containing one or more customer        applications). The level 1 interface application is in this case        contained either in one of these binary files (which assumes,        for the relevant binary file, that the object file or files        containing the customer application or applications have been        subject to link editing with the object file containing the        level 1 interface application), or in another binary file.

It will be noted that the expression “level 1” is used to denoteentities involved in relationships between customer application(s) andapplication(s) included in the main software program. These “level 1entities” are particularly executive functions associated with theapplications included in the main software program, the source functionsassociated with the customer application or applications, or again theinterface application between customer application(s) and application(s)included in the main software program.

Subsequently a different expression is used, namely “level 2”, to denoteentities involved in relationships between two customer applications, inthe context of one particular embodiment of the invention relative toradiocommunication module control. These “level 2 entities” areparticularly executive functions and source functions specific to thecontrol commands (according to the AT standard, for example), or elsethe application for interfacing between them.

Preferentially, said customer software program includes a globalinitialisation customer application, and at least one customer taskapplication carrying out at least one real-time task. The set of level 1source functions associated with the global initialisation customerapplication includes a level 1 global initialisation source function,the role of which is to provide the main software program withinformation allowing it to initialise and interact with each customertask application.

In this way, the main software program only needs to know this level 1global initialisation source function to be able to launch, when it sodesires, the global initialisation customer application. It does nottherefore need to know the dialogue points (level 1 messageinitialisation and processing source functions) for each customer taskapplication. These dialogue points are presented in detail below.

Preferentially, said customer software program includes at least twocustomer task applications, each associated with a set of level 1 sourcefunctions and each carrying out at least one different real-time task.Said main software program and/or said customer software programinclude(s) means of sharing calculation resources between said customertask applications, so as to allow a multitask real-time operation.

To advantage, the set of level 1 source functions associated with eachcustomer task application includes a level 1 initialisation sourcefunction, allowing said customer task application to be initialised.This level 1 initialisation source function is called on once by themain software program so as to initialise the task carried out by thecustomer task application involved.

Preferentially, said information provided by the global initialisationsource function to the main software program includes:

-   -   the number of customer task applications to be initialised;    -   for each customer task application to be initialised, the        corresponding level 1 initialisation source function.

Preferentially, the set of level 1 source functions associated with eachcustomer task application includes a level 1 source function ofreceiving and processing a message from the main software program, oneparameter of said level 1 receive and process source function being saidmessage.

This level 1 message receives and process source function is called oneach time the main software program sends a message to the relevantcustomer task application. Each customer application possesses its ownlevel 1 message receive and process source function.

Preferentially, said information provided by the level 1 globalinitialisation source function to the main software program additionallyincludes, for each customer task application to be initialised, thelevel 1 receive and process source function.

In this way, the main software program has two dialogue points (level 1source functions) with each customer application, namely the level 1initialisation source functions and the level 1 receive and processsource function.

In one particular embodiment of the invention, the set of level 1 sourcefunctions associated with each customer task application includes alevel 1 source function of subscribing to a mailbox service managed bythe main software program, allowing said customer task application toget itself allocated a mailbox which is specific to it and in which itwishes to receive information coming from at least one predeterminedsource.

Preferentially, each predetermined information source is a mailboxallocated to at least one main task carried out by the main softwareprogram, and containing information that said main task wishes tocommunicate to one or more other entities. The other entity or entitiesto which a main task wishes to communicate information are customer taskapplications and/or other main tasks.

In an advantageous embodiment of the invention, said customer softwareprogram includes at least:

-   -   a first customer application carrying out a first real-time task        of executing control commands, sent to said first application by        at least one customer control application and belonging to a        predetermined set of control commands, said first customer        application being based particularly on a set of level 2        executive functions, specific to the control commands and each        allowing at least one of said control commands to be executed,    -   a second customer application carrying out a second real-time        task such that said second customer application plays at least        one of the following roles:_* the role of a customer control        application, sending control commands to the first customer        application, and receiving from the customer application        responses arising from the execution of some of the control        commands;_* the role of a customer supervision application,        managing the execution of control commands sent by a customer        control application, said customer application being external,        hosted and run by third party equipment engaging with the        radiocommunication module;_said second customer application        being based particularly on a set of level 2 source functions,        specific to the control commands and each allowing control        commands or responses to control commands to be sent or        received, to or from the first customer application,    -   a level 2 interface application, specific to the control        commands, and allowing said level 2 source and executive        functions to interface, said level 2 interface application        itself being based on said level 1 interface application.

In this way, the present invention proposes a new software architecturewithin the radiocommunication module (opening up the lower layers to anembedded customer software program), which makes it possible to supporta new radiocommunication module control technique which isstraightforward and inexpensive.

This new radio communication module control technique consists inhosting on the radiocommunication module a customer software programincluding:

-   -   a first customer application capable of executing control        commands (AT commands for example). In practice, this first        customer application may be provided by the radiocommunication        module manufacturer;    -   a second customer application, controlling and/or supervising        the radiocommunication model, making the first customer        application execute commands.

In the event of the second customer application controlling the radiocommunication module, the latter presents an autonomous and inexpensiveoperation. Indeed it does not have to engage with third party equipment,and the main software program and the customer software program use thesame resources (same processor and same memory).

In the event of the second customer application supervising theradiocommunication module, the latter is not limited to the role of aslave in respect of the third party equipment which runs the customercontrol software program. Indeed, the second customer applicationmanages the control requested by the (external) customer controlsoftware program, run by the third party equipment. It will be noted,that in this case, the embedded customer software program is anadditional software program relative to the configuration of the priorart. However this additional software program is inexpensive since ituses the same resources (processor and memory) as the main softwareprogram which is also hosted by the radiocommunication module.

Preferentially, to allow the second customer application to play therole of the customer control application:

-   -   the second customer application includes means of sending        control commands to the executive means included in the first        customer application;    -   the first customer application includes means of sending        responses, resulting from the execution of some of the control        commands by the executive means included in the first customer        application, to the second customer application;    -   the second customer application includes means of processing the        responses sent to it by the first customer application.

Preferentially, to allow the second customer application to play therole of a customer supervision application:

-   -   the first customer application includes command switching means,        as a function of a pre-set command switching policy, so as to        transmit the control commands coming from the external customer        application to the second customer application and/or to the        executive means included in the first customer application;    -   the second customer application includes means of processing the        control commands switched to it by said command switching means.

To advantage, the second customer application includes means ofselecting the command switching policy applied by said command switchingmeans, among a set of command switching policies such that respectively:

-   -   the control commands from the external customer application are        transmitted only to the executive means included in the first        customer application;    -   the control commands from the external customer application are        transmitted only to the second customer application;    -   the control commands from the external customer application are        transmitted to the executive means included in the first        customer application and the second customer application.

To advantage, said command processing means take, for each command, atleast one decision belonging to the group that includes:

-   -   sending the control command to the executive means included in        the first customer application, the second customer application        including to this end means for sending control commands to the        executive means;    -   providing or not providing a response, solely as a function of        at least one piece of information relating to the command,        without executing the command, the second customer application        including to this end means of sending the response to the        external customer application, via the second customer        application.

Preferentially, to allow the second customer application to play therole of the customer supervision application:

-   -   the first customer application includes response switching        means, as a function of a pre-set response switching policy, so        as to transmit responses, arising from the execution of some of        the control commands by the executive means included in the        first customer application, to the second customer application        and/or to the external customer application;    -   the second customer application includes means of processing the        responses switched to it by said response switching means.

To advantage, the second customer application includes means ofselecting the response switching policy applied by said responseswitching means, among a set of response switching policies such thatrespectively:

-   -   the responses from the executive means are transmitted solely to        the external customer application;    -   the responses from the executive means are transmitted solely to        the second customer application;    -   the responses from the executive means are transmitted to the        second customer application and to the external customer        application.

Preferentially, said set of level 2 source functions includesparticularly a function of processing a message from the firstapplication, one parameter of said processing function being saidmessage.

Preferentially, said set of control commands is a set of standard ATcommands. This allows a rapid development of the first and secondcustomer applications, since the AT commands are well-known and alreadyused to develop external customer software programs (hosted by the thirdparty equipment). It also facilitates the development of a secondcustomer application strongly based on an existing external customersoftware program.

To advantage, said set of control commands includes, apart from thestandard AT commands, an additional AT command, the so called loadcommand, allowing the external customer application to load a new secondcustomer application or the totality of a new customer software programinto the radiocommunication module.

To advantage, said set of control commands includes, apart from thestandard AT commands, an additional AT command, the so called disablingcommand, allowing the-external customer application to disable thesecond customer application.

In one particular embodiment of the invention, said second customerapplication includes a main customer sub-application and at least onesecondary customer sub-application, slave of the main customersub-application, the processing operations carried out by said secondcustomer application being shared out between said main customersub-application and said at least one secondary customersub-application.

The present particular embodiment of the invention is therefore set inthe context of the aforementioned new radiocommunication module controltechnique.

In this context, it is proposed to use not a second “single block”customer application, but a second “distributed” (“multi-block”)customer application including a main customer sub-application combinedwith one or more secondary customer sub-application(s). Each secondarycustomer sub-application is a slave sub-application, in launch and stopterms, of the main customer sub-application which calls upon it. Butonce initialised, the secondary customer sub-application has access,independently of the main customer sub-application, to all the executivefunctions offered by the first customer application (via a mechanism,detailed below, of subscribing to a service for sending messages fromthe first customer application).

The secondary customer sub-applications are “elementary blocks” whichmay be provided to customers by a third party developer (typically theradiocommunication module manufacturer). In this way, the customer'sdevelopment work is reduced since he develops only the “main customersub-application” which sub-contracts some processing operations bycalling on one or more secondary customer sub-application(s).

It will be noted that the customer is himself also able to developsecondary customer sub-applications, if he wishes to be able to call onthem in different main customer sub-applications which he is developing.

Preferentially, said level 1 initialisation source function is includedin the set of level 1 source functions associated with the secondcustomer task application and allows said main customer sub-applicationto be initialised.

Preferentially, the main customer sub-application is associated with aset of level 2 source functions including a level 2 source function ofsubscribing to a service of sending messages from the first customerapplication. At subscription, the main customer sub-application sendsthe first customer application the address of a level 2 messageprocessing source function, in which the main customer sub-applicationwishes to receive messages from the first customer application.

It is this mechanism of subscribing to a service for sending messagesfrom the first customer application which allows the main customersub-application to call on all the executive functions offered by thefirst customer application, while being able to receive messages sent bythe first customer application in the context of the execution of thesefunctions.

Preferentially, the secondary customer sub-application is associatedwith a set of level 2 source functions including a level 2 sourcefunction of initialising the secondary customer sub-application, whichis called upon by the main customer sub-application.

In this way, the main customer sub-application has to know only thisdialogue point (“level 2 secondary customer sub-applicationinitialisation source function”), and its counterpart presented below(level 2 secondary customer sub-application stop source function”). Thisis then a straightforward and effective solution to the dialogueproblems between main customer sub-application and secondary customersub-application. Indeed, the developer of a secondary customersub-application does not have to write as many versions of it as thereare customers wanting to incorporate it into their main customersub-applications. He has only to indicate to them the two aforementioneddialogue points.

It should be noted that two developers of secondary customersub-applications should be prevented from using identical dialoguepoints. To this end, provision may be made for example for eachdeveloper to request from a central service a unique identifier for eachsecondary customer sub-application which he wishes to develop.

Furthermore, the dialogue mechanism between the main customersub-application and secondary customer sub-application particularlyallows the secondary customer sub-application to send to the maincustomer sub-application the results of the execution of his task ortasks. The dialogue may be two-way or one-way.

Preferentially the set of level 2 functions associated with thesecondary customer sub-application includes a level 2 source function ofsubscribing to a service of sending messages from the first customerapplication. At subscription, the secondary customer sub-applicationsends the first customer application the address of a level 2 sourcefunction of processing a message, in which the secondary customersub-application wishes to receive messages from the first customerapplication.

Preferentially, said level 2 secondary customer sub-applicationinitialisation source function includes at least one parameter thatallows a dialogue mechanism to be implemented between the main customersub-application and the secondary customer sub-application.

Preferentially, the set of level 2 source functions associated with thesecondary customer sub-application includes a level 2 secondary customersub-application stop source function, which is called upon by the maincustomer sub-application.

Preferentially, the set of level 2 source functions associated with thesecondary customer sub-application includes a level 2 source function ofunsubscribing from said service of sending messages from the firstcustomer application.

The invention also relates to a process for opening up access to atleast some of the functionalities of a main radiocommunication modulesoftware program. It is assumed that the radiocommunication module is ofthe type that hosts and runs a main software program that includes anoperation system (OS) management application, a radiocommunication(layer 3 GSM) management application and an application for managingperipheral devices that can be connected to the radiocommunicationmodule (HWL). According to the invention, each of said applicationsincluded in the main software program is associated with a set of level1 executive functions. The radiocommunication module hosts and runsadditionally at least one customer software program including at leastone customer application, associated with a set of level 1 sourcefunctions. The main software program and/or said customer softwareprogram include(s) a level 1 interface application that allows the level1 source functions, associated with said customer application, tointerface with the level 1 executive functions, associated with saidoperating system management application and with at least one of saidradiocommunication management and peripheral device managementapplications.

Other characteristics and advantages of the invention will emerge fromreading the following description of a preferential embodiment of theinvention, given by way of example and non-restrictively, and of theappended drawings, in which:

FIG. 1 shows a simplified diagram of a particular embodiment of aradiocommunication module according to the present invention, showingthe main software program including the lower layers, and the customersoftware program including a level 1 interface application and aplurality of customer applications;

FIG. 2 shows a mechanism for launching customer applications included inthe customer software program;

FIG. 3 shows a mechanism for dialogue between two customer taskapplications included in the customer software program;

FIG. 4 shows a mechanism for calling, within a customer application, ona level 1 source function relating to the “HWL” block;

FIG. 5 shows a mechanism for calling, within a customer application, ona level 1 source function relating to the “layer 3 GSM” block;

FIG. 6 shows a mechanism for calling, within a customer application, ona level 1 source function relating to the “HWL” and “layer 3 GSM”blocks;

FIG. 7 shows a mechanism for a customer application to subscribe to amailbox service managed by the main software program;

FIG. 8 shows a new radiocommunication module control technique,supported by the software architecture according to the invention,within the radiocommunication module.

The invention therefore relates to a radio communications module thathosts and runs, with the same set of resources (process and memory), amain software program and (at least) one embedded customer softwareprogram.

Conventionally, as shown in FIG. 1, the main software program 3includes:

-   -   an “HWL” block 3 a, which is an application for managing        peripheral devices that can be connected to the        radiocommunication module;    -   an “OS” block 3 b, which is an operating system management        application, managing system aspects such as the task manager,        the memory manager, the time delay manager, etc;    -   a “layer 3 GSM” block, which is a radiocommunication management        application, managing network aspects such as outgoing and        incoming call management, short text message receive and send        management, etc

Each of the three “HWL”, “OS” and “layer 3 GSM” blocks is associatedwith a set of level 1 executive functions.

In the particular embodiment shown in FIG. 1, the embedded customersoftware program 6 (a concept specific to the present invention)includes:

-   -   three customer applications, namely: a customer initialisation        application 6 a and two customer task applications, no.1 6 b and        no.2 6 c, each of these customer applications being associated        with a set of level 1 source functions;    -   a level 1 interface application 6 d, allowing level 1 source        functions (associated with the customer applications 6 a, 6 b        and 6 c) to interface with the level 1 executive functions        (associated with the “HWL” 3 a, “OS” 3 b and “layer 3 GSM” 3 c        blocks).

In this way, the customer applications 6 a, 6 b and 6 c communicate withthe “HWL” 3 a, “OS” 3 b and “layer 3 GSM” 3 c blocks, via the level 1interface application 6 d. To this end, each of these elements includesan “API” (Application Programming Interface). It will be remembered thatan “API” interface is a description of the communication rules relatedto a certain functional set.

Each of the customer applications 6 a, 6 b and 6 c includes an“Application Mandatory API” block forming an interface describingfunctions that have to be specified in the customer application. It isclear that the “Application Mandatory API” blocks of the differentcustomer applications are able not to be strictly identical.

The level 1 interface application (or application interface library) 6 dincludes the 4 following blocks:

-   -   an “HWL API” block, forming an interface describing the access        to the “HWL” block 3 a, this interface describes functions that        are in the level 1 application interface library;    -   an “OS API” block, forming an interface describing access to the        “OS” block 3 b, this interface describes functions that are in        the level 1 application interface library;    -   a “layer 3 GSM API” Block, forming an interface describing        access to the “layer 3 GSM” block 3 c, this interface describes        functions that are in the level 1 application interface library;    -   a “Standard API” block, forming an interface describing access        to standard functions, this interface describes functions that        are in the level 1 application interface library.

On the main software program side 3:

-   -   the “HWL” block 3 a includes an “HWL API” block, the counterpart        of the block of the same name included in the level 1 interface        application 6 d;    -   the “OS” block 3 b includes an “OS API” block, the counterpart        of the block of the same name included in the level 1 interface        application 6 d;    -   the “layer 3 GSM” block 3 c includes a “layer 3 GSM API” block,        the counterpart of the block of the same name included in the        level 1 interface application 6 d.

The level 1 interface application 6 d is for example a binary file,which is presented in the form of a library (already compiled).

The main software program 3 is for example a binary file, resulting fromlink editing between a plurality of object files, themselves resultingfrom the compilation of source files containing particularly the “HWL” 3a, “OS” 3 b and “layer 3 GSM” 3 c blocks.

As far as customer applications 6 a, 6 b and 6 c are concerned, thefollowing variants are conceivable:

-   -   either the customer applications are contained in the customer        software program 6 in the form of the same binary file,        resulting from link editing involving particularly the object        files that contain these customer applications;    -   or the customer applications are contained in the customer        software program 6 in the form of several binary files (each        binary file containing one or more customer applications).

The embedded customer software program 6 and the main software program 3each use a different part of the same random access memory (RAM). Thecustomer specifies the size of the memory stack necessary for theembedded customer software program to run properly. An attempt by one ofthe two software programs to access part of the random access memoryreserved for the other software program causes the operation to stop.

A mechanism for launching the customer applications 6 a, 6 b and 6 cincluded in the customer software program 6 will now be given, inrelation to FIG. 2.

The elements included in the radiocommunication module 1, and alreadypresented above in relation to FIG. 2, retain the same numericalreferences.

Each of the stages in this mechanism is shown in FIG. 2 by a circle inwhich the number of the relevant stage is inscribed. The same conventionis adopted in the following figures in relation to the present invention(and which are described in detail in the remainder of the description).

The operation of this launch mechanism for customer applications 6 a, 6b and 6 c can be summarised as follows:

-   -   -stage “1”:the main software program 3 detects the presence of a        customer initialisation application 6 a and launches it by means        of the OS manager 3 b (another name for the “OS block” presented        above);-stage “2”:the customer initialisation application 6 a is        launched via the level 1 interface application 6 d. The latter        calls within the customer initialisation application 6 a on a        (level 1) global initialisation source function. This source        function (“wm_apmGlobalInit_level1( )”) is presented in detail        in the remainder of the description;-stage “3”:within the        customer initialisation application 6 a, the source function “wm        apmGlobalInit_level1( )” carries out a global initialisation        consisting in providing the main software program 3 with the        information allowing it to initialise and interact with each        customer task application 6 b and 6 c. This information is for        example as follows:    -   the number of customer task applications (two in the example        described above) included in the embedded customer software        program,    -   the dialogue functions associated with each of these customer        task applications. These dialogue source functions        (“AppliInit_nx_level1” and “AppliParser_nx_level1) are presented        in detail in the remainder of the description;-stage “4”:within        the main software program 3, the OS manager 3 b initialises the        customer task applications 6 b and 6 c by calling on their        respective initialisation functions (AppliInit1_level1 and        “AppliInit2_level1”).

A mechanism for dialogue between two customer task applications 6 b and6 c included in the customer software program 6 is now presented inrelation to FIG. 3.

The operation of this mechanism may be summarised as follows:

-   -   -stage “1”:the main software program 3 has initialised customer        task application no.1 by calling on the source function        “AppliInit1_level1( )” via the level 1 interface application        6 d. This source function calls on a function        (“wm_osStartTimer_level( )”) to trigger a time delay in the main        software program;-stage “2”:the interface application 6 d calls,        within the main software program 3, on the appropriate executive        function or functions;-stage “3”:within the main software        program 3, the OS manager 3 b informs customer task application        no.1 which has set the time delay, through the interface        application 6 d;-stage “4”:when the time delay has expired, the        OS manager 3 b informs customer task application no.1 which has        set the time delay, through the interface application 6 d;-stage        “5”:the dialogue with customer task application no.1 is        conducted via the interface application 6 d, which calls within        customer task application no.1 on the aforementioned source        function “AppliParser1_level1( )”;-stage “6”:within customer        task application no.1, the source function “AppliParser1_level1(        )” called upon sends a message to customer task application        no.2, calling on the source function “wm_osSendMsg_level1( )”        (presented in detail below);-stage “7”:the interface application        6 d calls, within the main software program 3, on the        appropriate executive function or functions;-stage “8”:within        the main software program 3, the OS manager 3 b carries out the        processing requested which consists in sending the message to        customer task application no.2, via the interface application 6        d;-stage “9”:the dialogue with customer task application no.2 is        conducted by the interface application 6 d, which calls within        customer task application no.2 on the aforementioned source        function “AppliParser2_level1( )”;-stage “10”within customer        task application no.2, the source function “AppliParser2_level1(        )” called upon processes the message received.A mechanism for        calling, within the customer application, on a level 1 source        function relating to the “HWL” block is now given in relation to        FIG. 4.

It is assumed that a time delay has been set by customer taskapplication no.1, and that it is awaiting the expiry of this time delay.

In this example, calls to the HWL manager 3 a are made by customer taskapplication no.1. It is clear that this example remains valid if callsare made by any other customer task application of the embedded customersoftware program.

The operation of this mechanism may be summarised as follows:

-   -   stage “1”:when the time delay has expired, the OS manager 3 b        informs customer task application no.1 which set the time delay,        through the interface application 6 d;-stage “2”:the dialogue        with customer task application no.1 is conducted via the        interface application 6 d, which calls within customer task        application no.1 on the source function “AppliParser1_level1(        )”;-stage “3”:within customer task application no.1, the source        function “AppliParser1_level1( )” wishes for example to read a        value stored in the Eeprom memory. To do this, it calls on the        function “wm_hwlE2pRead_level1( )”;-stage “4”:the interface        application 6 d calls, within the main software program 3, on        the appropriate executive function or functions in the HWL        manager 3 a;-stage “5”:within the main software program 3, the        HWL manager 3 a carries out the process requested, which        consists in reading a value stored in the Eeprom memory. Then        the customer task application no.1, via the interface        applications 6 d, returns the value read to customer task        application no.1.

It is clear that the “wm_hwlE2pRead_level1( )” function, discussedabove, is only one example among a plurality of level 1 source functionsrelating to the “HWL” block.

A mechanism for calling, within a customer application, on a level 1source function relating to the “layer 3 GSM” block is now presented inrelation to FIG. 5.

The assumptions and observations given above in commenting on FIG. 4also apply to the present FIG. 5.

The operation of this mechanism can be summarised as follows:

-   -   -stage “1”:when the time delay has expired, the OS manager 3 b        informs customer task application no.1 which set the time delay,        through the interface application 6 d;-stage “2”:the dialogue        with customer task application no.1 is conducted via the        interface application 6 d, which calls within customer task        application no.1 on the source function “AppliParser1_level1(        )”;-stage “3”:within customer task application no.1, the source        function “AppliParser1_level1( )” wishes for example to send a        message to the network. To do this, it calls on the function        “wm_osRtkSend_level1( )”;-stage “4”:the interface application 6        d calls, within the main software program 3, on the appropriate        executive function or functions in the “Layer 3 GSM” manager 3        c;-stage “5”:within the main software program 3, the “Layer 3        GSM” manager 3 c carries out the process requested;-stage        “6”:after processing (sending a message to the network) and        obtaining a response from the network, the “Layer 3 GSM” manager        3 c informs customer task application no.1, by the interface        application 6 d;-stage “7”:the dialogue with customer task        application no.1 is conducted via the interface application 6 d,        which calls within customer task application no.1 on the        aforementioned source function “AppliParser1_level1( )”;-stage        “8”:within customer task application no.1, the source function        “AppliParser1_level1( )” processes the message received.

It is clear that the function “wm_osRtkSend_level1( )”, discussed above,is only one example among a plurality of level 1 source functionsrelating to the “layer 3 GSM” bloc.

A mechanism for calling, within a customer application, on level 1source functions relating to the “HWL” and “layer 3 GSM” blocks is nowpresented, in relation to FIG. 6.

In this example, it is assumed that customer task application no.1wishes to read a value stored in the Eeprom memory, then to send amessage to the network. It interacts to do this:

-   -   with the “HWL” block 3 a (stages “1” to “5” corresponding to        stages “1” to “5” in FIG. 4 described above),    -   then with the “Layer 3 GSM” block 3 c (stages “3b”, 6 and “7”        corresponding to stages “3” to “5” described above).

A mechanism for subscribing a customer application to a mailbox servicemanaged by the main software program is now presented, in relation toFIG. 7.

The operation of this mechanism can be summarised as follows:

-   -   -stage “1”:when the time delay has expired, the OS manager 3 b        informs customer task application no.1 which set the timer,        through the interface application 6 d;-stage “2”:the dialogue        with customer task application no.1 is conducted via the        interface application 6 d, which calls within customer task        application no.1 on the source function “AppliParser1_level1(        )”;-stage “3”:within customer task application no.1, the source        function “AppliParser1_level1( )” wishes for example to request        a subscription to information relating to the battery (load        level indication, for example). To do this, it calls on a source        function “wm_MbxSubscribe( )”of subscribing to a mailbox service        management managed by the main software program, in order to get        itself allocated a mailbox which is specific to it and in which        it wishes to receive information coming from at least one        predetermined source (the “battery” task in this example). This        source function is presented in detail below;-stage “4”:the        interface application 6 d calls, within the main software        program 3, on the appropriate executive function or functions in        the “Layer 3 GSM” manager 3 c;-stage “5”:within the main        software program 3, the “OS” manager 3 b carries out the process        requested, which consists in this example in storing customer        task application no.1 as addressee of the battery        information;-stage “6”:when battery information is available,        the HWL manager 3 a sends it to customer task application no.1,        via the interface application 6 d. To do this, the HWL manager 3        a consults the OS manager 3 b internally, in order to find out        the mailbox or mailboxes to which this information is to be        addressed; -stage “7”:the dialogue with customer task        application no.1 is conducted via the interface application 6 d,        which calls within customer task application no.1 on the        aforementioned source function “AppliParser1_level1( )”;-stage        “8”:within customer task application no.1, the source function        “AppliParser1_level1( )” processes the battery information        received.

It should be noted that the “OS” block 3 b includes a task manager. Thelatter manages both the tasks offered by the main software program 3 andthose offered by the customer software program 6. Each task isassociated with a mailbox, which is assimilated to the source of theinformation generated by this task. In this way, each time one taskwishes to communicate with another task, it uses the “OS” block taskmanager. Some tasks in the main software program 3 have information tocommunicate to the embedded customer software program 6. The latter isable to decide to which of its task applications it wishes to receivethis information. In this way, in the example described above, the“battery” task of the main software program 3 has information whichrelates to battery management and it is customer task application no.1which manages it (and therefore wishes to receive it in its mailbox).

A new radiocommunication module control technique, supported by thesoftware architecture according to the invention, within theradiocommunication module, is now presented in relation to FIG. 8.

One particular embodiment of the software architecture of theradiocommunication module, according to the invention, has beenpresented above in relation to FIGS. 1 to 7. In this particularembodiment, the main software program 3 includes the “HWL” 3 a, “OS” 3 band “layer 3 GSM” 3 c blocks, and the embedded customer software program6 includes a customer initialisation application 6 a, two customer taskapplications (no.1) 6 b and (no.2) 6 c, and a level 1 interfaceapplication 6 d.

In the remainder of the description, it is assumed that the controlcommands are AT commands. For more details in relation to AT commands,reference may be made on the one hand to the ETSI standards “GSM 07.05”and “GSM 07.07” and on the other hand to the V25ter recommendation ofthe ITU-T, which are inserted here for reference.

It is nonetheless clear that the present invention is in no wayrestricted to this type of control command.

In order to propose a new radiocommunication module control technique,it is specified that

-   -   customer task application no.1 carries out a first real-time        task to execute the AT commands. The latter are sent to customer        task application no.1 by (at least) one customer control        application;    -   customer task application no.2 carries out a second real-time        task allowing it to play at least one of the two following        roles:    -   the role of a customer control application, sending AT commands        to customer task application no.1, and receiving from customer        task application no.1 responses, arising from the execution of        some of the AT commands;    -   the role of a customer supervision application, managing the        execution of AT commands sent by a customer control application,        the so-called external customer application, hosted and executed        by third party equipment engaging with the radiocommunication        module.

Customer task application no.1 is based particularly on a set of level 2executive functions, specific to AT commands and each allowing theexecution of at least one of the AT commands.

The customer task application No 2 is based particularly on a set oflevel 2 source functions, specific to AT commands and each allowing ATcommands or responses to AT commands to be sent or received, to or fromcustomer task application no.1.

Provision is additionally made for a level 2 interface application 6 e,specific to AT commands. It allows interfacing between level 2 sourceand executive functions. This level 2 interface is itself based on thelevel 1 interface application 6 d.

It is important to distinguish properly between:

-   -   the sets of level 2 source and executive functions, specific to        AT commands, and which are used in relations between the        customer task applications no.1 and no.2;    -   the sets of level 1 source and executive functions, presented        above in a detailed way in relation to FIGS. 1 to 7 and with        appendix 1, and which are used in relations between each        customer task application (no.1 or no.2) and the “HWL”, “OS” and        “layer 3 GSM” blocks of the main software program 3.

In the event of customer task application no.2 playing the role of acustomer control application, the operation of the control technique maybe summarised as follows:

-   -   -stage “l”:customer task application no.2 calls on the source        function (wm_atSendCommand_level2”) to send to customer task        application no.1 one or more AT command(s). This source function        is presented in detail in the remainder of the        description;-stage “2”:the level 2 interface application calls        on the appropriate executive function or functions within        customer task application no.1.-stage “3”:customer task        application no.1 executes the AT command or commands;-stage        “4”:after execution, customer task application no.1 sends the AT        response or responses to customer task application no.2 (if the        aforementioned send command has been parameterised in this        direction);-stage “5”:this (or these) response(s) is (are) sent        via the level 2 interface application, which calls, within        customer task application no.2, on the source function        (“wm_apmAppliParser_level2”) of processing a message from        customer task application no.1. One parameter of this processing        source function is the message containing the aforementioned        response or responses. This source function is presented in        detail with the remainder of the description;-stage “6”:within        customer task application no.2, the processing source function        processes the response.

A detailed description will now be given of the case where customer taskapplication no.2 plays the role of the customer supervision application.

In this second case, the radiocommunication module is not autonomous(unlike the first case), but is controlled by third party equipment withwhich it engages, for example via a serial link. An external customerapplication, hosted by the third party equipment, sends AT commands tothe radiocommunication module, with a view to them being executed by thelatter.

In this second case, in a transparent way for the external customerapplication, customer task application no.2 supervises the execution (ornot) of the AT commands by customer task application no.1.

Customer task application no.2 (supervision application) is able todecide on the implementation, within the radiocommunication module,particularly of:

-   -   a mechanism for switching and processing AT commands, sent by        the external customer application. Three variants for        implementing this mechanism are for example proposed, according        to which customer task application no.1 transmits the AT        commands it receives: either solely to executive means included        in customer task application no.1 (first variant), or solely to        customer task application no.2 (second variant), or to both        (third variant);    -   a mechanism for switching and processing AT responses, arising        from the execution by executive means included in customer task        application no.1 of AT commands. Three variants for implementing        this mechanism are for example proposed, according to which the        AT responses generated by customer task application no.1 are        transmitted respectively solely to the external customer        application (first variant), solely to customer task application        no.2 (second variant), or else to both (third variant).

It will be noted that the first variant of each of the twoaforementioned mechanisms (relating to AT commands and to AT responsesrespectively) means that customer task application no.2 is able todecide to be totally passive at certain times.

The second variant of the AT command switching and processing mechanism,which allows customer task application no.2 to filter the AT commandsfrom the external customer application, is now presented.

The operation of this second variant of the AT command switching andprocessing mechanism may be summarised in two successive phases, namely:

-   -   a prior phase of selecting, by the external customer        application, the (second) AT command switching policy, according        to which AT commands are retransmitted solely to customer task        application no.2, and    -   a phase of processing, according to the (second) command        switching policy selected, the AT commands sent by the external        customer application.

The second AT command switching policy prior selection phase includesthe following stages:

-   -   -stage “1”:The customer task application no.2 calls on a source        function (“wm_atCmdPreParserSubscribe_level2”) of subscribing        customer task application no.1 to an AT command switching        service, with one parameter of this subscription function        indicating the choice of the second AT command switching policy.        This source function is presented in detail in the remainder of        the description;-stage “2”:the level 2 interface application        calls, within customer task application no.1, on the appropriate        executive function or functions, the so-called function of        registering the subscription to the AT command switching        service.-stage “3”:customer task application no.1 sets up the        subscription requested by customer task application no.2, via        the level 2 interface application.

Solely in the interests of simplification, it is assumed in theremainder of the description that the function or functions ofregistering the subscription to the AT command switching service areincluded, within customer task application no.1, in the AT commandexecutive means. Also solely in the interests of simplification, it isassumed in the remainder of the description that the command switchingmeans (discussed below) are included, within customer task applicationno.1, in the AT command executive means.

The AT command processing phase includes the following stages:

-   -   -stage “4”:the external customer application sends an AT command        to customer task application no.1;-stage “5”:the serial link        transmits the AT command to command switching means, included in        the executive means included in customer task application no.1        and operating in accordance with the second AT command switching        policy (selected during the prior phase);-stage “6”:without        being executed by the executive means, the AT command is        retransmitted solely to customer task application no.2;-stage        “7”:the AT command is sent by the level 2 interface application,        which calls, within customer task application no.2, on the        source function (“wm_apmAppliParser_level2”) of processing a        message from customer task application no.1, here parameterised        particularly by a message containing the AT command and        indicating that it is an “original” AT command. This source        function is presented in detail in the remainder of the        description;-stage “8”:within customer task application no.2,        the processing source function processes the AT command.

This processing operation consists for example in sending the AT commandback to the executive means included in customer task application no.1(according to the mechanism corresponding to the first case describedabove). It may also consist of the arbitrary provision of a response bythe customer task application no.2 itself, without the AT command beingexecuted. In this case, the customer task application no.2 takes intoaccount, for example, at least one piece of information relating to therelevant AT command (command type, nature of the parameter orparameters, etc.). Generally speaking, whatever processing operation iscarried out, it is understood that customer task application no.2“filters” the AT command.

The third variant of the AT command switching and processing mechanism,which allows customer task application no.2 to spy on AT commands fromthe external customer application, is now presented.

The operation of this third variant of the AT command swtching andprocessing mechanism may also be summarised in two successive phases,namely

-   -   a prior phase of selecting, by the external customer        application, the (third) AT command switching policy, according        to which AT commands are retransmitted not only to customer task        application no.2, but also to the executive means included in        customer task application no.1, and    -   a phase of processing, according to the (third) command        switching policy selected, the AT commands sent by the external        customer application.

The operation of this third variant differs from that of the secondvariant mainly in that:

-   -   in stage “1” of the prior phase, customer task application no.2        selects the third (and not the second) AT command switching        policy;    -   in stage “6” of the processing phase, the AT command is        transmitted to the executive means and a copy of this AT command        is transmitted to customer task application no.2;    -   in stage “8” of the processing phase, within customer task        application no.2, the processing source function processes the        copy of the AT command;    -   the processing phase additionally includes a stage “7”, during        which the executive means included in customer task application        no.1 execute the AT command.

The second variant of the AT response switching and processingmechanism, which allows customer task application no.2 to filter the ATresponses intended for customer task application no.1, is now presented.

The operation of this second variant of the AT response switching andprocessing mechanism may also be summarised in two successive phases,namely:

-   -   a prior phase of selecting, by the external customer        application, the (second) AT response switching policy,        according to which the AT responses generated by customer task        application no.1 are transmitted solely to customer task        application no.2;    -   a phase of processing, according to the (second) response        switching policy selected, the AT responses generated by        customer task application no.1.

The second AT response switching policy prior selection phase includesthe following stages:

-   -   -stage “1”:customer task application no.2 calls on a source        function (“wm_atRspPreParserSubscribe_level2”) of subscribing        customer task application no.1 to an AT response switching        service, with one parameter of this subscription function        indicating the choice of the second AT response switching        policy. This source function is presented in detail in the        remainder of the description;-stage “2”:the level 2 interface        application 6 e calls, within customer task application no.1, on        the appropriate executive function or functions, known as the        function(s) of registering the subscription to the AT response        switching service.-stage “3”:customer task application no.1 sets        up the subscription requested by customer task application no.2,        via the level 2 interface application.

Solely in the interests of simplification, it is assumed in theremainder of the description that the function or functions ofregistering the subscription to the AT response switching service arcincluded, within customer task application no.1, in the AT commandexecutive means. Also solely in the interests of simplification, it isassumed in the remainder of the description that the response switchingmeans (discussed below) are included, within customer task applicationno.1, in the AT command executive means.

The AT response processing phase includes the following stages:

-   -   -stage “4”:the external customer application sends an AT command        to customer task application no.1;-stage “5”:the serial link        transmits the AT command to the executive means included in        customer task application no.1;-stage “6”:the executive means        execute the AT command and generate an AT response;-stage        “7”:response switching means, included in the executive means        and operating in accordance with the second AT response        switching policy (selected during the prior phase), send the AT        response to customer task application no.2;-stage “8”:the AT        response is sent by the level 2 interface application, which        calls, within customer task application no.2, on the source        function (“wm_apmAppliParser_level2”) of processing a message        from customer task application no.1, here parameterised        particularly by a message containing the AT response and        indicating that it is an “original” AT response;-stage        “9”:within the customer task application no.2, the processing        source function processes the AT response. It is possible to        talk here of a “filtering” of the AT responses by customer task        application no.2.

The third variant of the AT response switching and processing mechanism,which allows customer task application no.2 to spy on the AT responsesintended for customer task application no.1, is now presented.

The operation of this third variant of the AT response switching andprocessing mechanism may also be summarised in two successive phases,namely:

-   -   a prior phase of selecting, by the external customer        application, the (third) AT response switching policy, according        to which the AT responses are retransmitted not only to customer        task application no.1, but also to customer task application        no.2, and    -   a phase of processing, according to the (third) response        switching policy selected, the AT responses generated by the        customer task application no.1.

The operation of this third variant differs from that of the secondvariant mainly in that:

-   -   in stage “1” of the prior phase, customer task application no.2        selects the third (and not the second) AT response switching        policy;    -   in stage “7” of the processing phase, the AT response is        transmitted to the external customer application and a copy of        this AT response is transmitted to customer task application        no.2;    -   in stage “9” of the processing phase, within customer task        application no.2, the processing source function processes the        copy of the AT response;    -   the processing phase additionally includes a stage “8”, during        which the response is sent through the serial link, and a stage        “9” during which the external customer application receives and        processes the response.

In a variant of the new radiocommunication module control techniqueaccording to the invention (one particular embodiment of which has beendescribed above), customer task application no.2 6 c is not “singleblock”, but “distributed” (“multi-block”). It includes a main customersub-application 7 combined with one or more secondary customerssub-application(s) 8. Each secondary customer sub-application 8 is aslave sub-application, in launch and stop terms, of the main customersub-application 7 which calls upon it. But once initialised, thesecondary customer application 8 has access, independently of the maincustomer sub-application 7, to all the executive functions offered bythe customer task sub-application no.1 (via a mechanism, detailed below,of subscribing to a service for sending messages from the customer taskapplication no.1).

Each secondary customer sub-application is an “elementary block” whichis able to be provided to the customer by a third-party developer(typically the radiocommunication module manufacturer). In this way, thecustomer's development work is reduced since he develops only the maincustomer sub-application, which subcontracts some processes by using oneor more secondary customer sub-application(s).

It will be noted that the customer is himself also able to developsecondary customer sub-applications, if he wishes to be able to call onthem in different main customer sub-applications which he is developing.

The implementation of several mechanisms in the context of theaforementioned variant of the new radiocommunication module controltechnique according to the invention is presented successively below.

Firstly a mechanism of launching the main customer sub-application 7 andof subscribing it to a service of sending messages from the customertask application no.1, is presented. The operation of this mechanism maybe summarised as follows:

-   -   -stage “1”:customer task application no.1 detects the presence        of a main customer application and launches it;-stage “2”:the        main customer sub-application is launched via the level 2        interface application, which calls within the main customer        sub-application on a main customer sub-application        initialisation source function. This source function        (“wm_apmAppliInit2_level1”) is presented in detail in the        remainder of the description;-stage “3”:within the main customer        sub-application, the source function (“wm_apmAppliInit2_level1”)        initialises the main customer sub-application. As explained in        detail in the next stages (“4” to “6”), this initialisation        consists particularly in giving customer task application no.1        the address of a source function (for example        “wm_apmAppliParser_level2”) that allows the main customer        sub-application to receive messages from customer task        application no.1; -stage “4”:the main customer sub-application        calls on a source function of subscribing to a service of        sending messages from customer task application no.1        (“wm_osMsgParserSubscribe_andlevel2”). This source function is        presented in detail in the remainder of the description;-stage        “5”:The level 2 interface application calls, within customer        task application no.1, on the appropriate executive function or        functions, known as the function of registering the subscription        (or enrolment) to the service of sending messages intended for        the main customer sub-application;-stage “6”:Customer task        application no.1 sets up the subscription requested, via the        level 2 interface application, by the main customer        sub-application.

According to one variant, customer task application no.1 calls on thesource function “wm_osMsgParserSubscribe_level2” when it so desires(independently of the execution of the initialisation source function).

A mechanism of launching the secondary customer sub-application 8 and ofsubscribing it to a service of sending messages from the customer taskapplication no.1 is now presented.

The operation of this mechanism may be summarised as follows:

-   -   -stage “1”:the main customer sub-application, after receiving a        message in its source function “wm_apmAppliParser_level2( )”,        calls on a source function of the secondary customer        sub-application, namely the initialisation source function of        the secondary customer application 8        (“wm_app2Pipe_level2(init)”). This source function (which must        be known to the main customer sub-application) is presented in        detail in the remainder of the description; -stage “2” :within        the secondary customer sub-application, the source function        (“wm_app2Pipe_level2(init)”) initialises the secondary customer        sub-application. As explained in detail in the following stages        (“3” to “5”), this initialisation consists particularly in        giving customer task application no.1 the address of the source        function (for example “wm_app2MsgParser_level2”), allowing the        secondary customer sub-application to receive messages from the        customer task application no.1;-stage “3”:the secondary customer        sub-application calls on the source function of subscribing to a        service of sending messages from customer task application no.1        (“wm_osMsgParserSubscribe_level2”). This source function is        presented in detail in the remainder of description; -stage        “4”:the level 2 interface application calls, within the customer        task application no.1, on the appropriate executive function or        functions, known as the function of registering the subscription        (or enrolment) to the service of sending messages intended for        the secondary customer sub-application;-stage “5”:customer task        application no.1 sets up the subscription requested, via the        level 2 interface application 6 e, by the secondary customer        sub-application 8.

After it has been launched, the secondary customer sub-application 8carries out its function (set of processing operations or tasks),autonomously relative to the main customer sub-application 7. Asexplained in detail below, it has at its disposal to this end the set ofexecutive functions offered by the customer task application no.1.

According to one variant, the secondary customer sub-application 8 callson the source function “wm_osMsgParserSubscribe_level2” when it sodesires (independently of the execution of the initialisation sourcefunction of the secondary customer application).

It will be noted that the initialisation source function of thesecondary customer sub-application may include at least one parameterthat-allows a dialogue mechanism to be implemented between the maincustomer sub-application and the secondary customer sub-application.This characteristic of the invention is described in detail in theremainder of the description.

A mechanism of stopping the secondary customer sub-application 8 andunsubscribing it from the service of sending messages from customer taskapplication no.1 is now presented.

The operation of this mechanism may be summarised as follows:

-   -   -stage “1”:the main customer sub-application 7, after receiving        a message in its source function “wm_apmAppliParser_level2( )”,        calls on a source function of the secondary customer        sub-application 8, namely the source function of stopping the        secondary customer sub-application (“wm_app2Pipe_level2(stop)”).        This source function (which must be known to the main customer        sub-application) is presented in detail in the remainder of the        description;-stage “2”:within the secondary customer        sub-application 8, the source function        “wm_app2Pipe_level2(stop)” carries out the processing operations        to stop the secondary customer sub-application. As explained in        detail in the following stages (“3” to “5”), these processing        operations consist particularly for the secondary customer        sub-application in unsubscribing from the service of sending        messages from customer task application no.1;-stage “3”:the        secondary customer sub-application calls on the source function        to unsubscribe from the service of sending messages from        customer task application no.1        (“wm_osMsgParserUnsubscribe-level2”). This source function is        presented in detail in the remainder of the description;-stage        “4”:the level 2 interface application calls, within the customer        task application no.1, on the appropriate executive function or        functions, known as the unsubscribing (or subscription        withdrawal) function(s) from the service of sending messages        intended for the secondary customers on-application;-stage        “5”:customer task application no.1 sets up the subscription stop        requested, via the level 2 interface application, by the        secondary customer sub-application.

An example of processing operations that can be carried out by thesecondary customer application, to unload the main customersub-application is now presented.

In this example, it is assumed that:

-   -   customer task application no.2 plays the role of the customer        control application;    -   the processing operations consist of the sending by the        secondary customer sub-application 8 of a command and the        receipt of the corresponding response;    -   the secondary customer sub-application 8 has been initialised        and that it is subscribed to the service of sending messages        from customer task application no.1;    -   at subscription, the secondary customer sub-application 8 gave        “wm_app2MsgParser_level2( )” as the message receive source        function.

The operation of this example of processing operations may be summarisedas follows:

-   -   -stage “1”:the secondary sub-application 8 calls on the function        source of sending to customer task application no.1 one or more        AT commands, so that the it executes them (and therefore carries        out an “AT command processing operation)”. This source function        (“wm_atSendCommand_level2”) is presented in detail in the        remainder of the description;-stage “2”:the level 2 interface        application 6 e calls, within the executive means included in        the customer task application no.1, on the appropriate executive        function or functions, known as AT command processing        function(s);-stage “3”:the executive means 4 execute the AT        command or commands;-stage “4”:after execution, the executive        means 4 send the AT response or responses to the secondary        customer sub-application 8 (if the source function has been        parameterised in this direction);-stage “5”:this (or these)        response(s) is (are) sent, through the level 2 interface        application, to the secondary customer sub-application 8;-stage        “6”:within the secondary customer sub-application, the receive        and process source function “wm_app2MsgParser_level2( )”        processes the response. This source function is the one given by        the secondary customer sub-application at subscription in        respect of receiving messages from customer task application        no.1. One parameter of this receive and process source function        is the message containing the aforementioned response or        responses.

There now follows a discussion, still in the context of the variant ofthe new radiocommunication module control technique according to theinvention, of the case where customer task application no.2 plays therole of a supervision application. In this case, the secondary customersub-application 8 is able for example to carry out the followingprocessing operations:

-   -   implementation of a command switching mechanism, that allows the        secondary customer sub-application 8 to filter or spy on the        commands coming from the external customer application;    -   implementation of a response switching mechanism, that allows        the secondary customer sub-application 8 to filter or spy on the        responses intended for the external customer application.

These examples of processing operations carried out by the secondarycustomer sub-application are not described below in detail. However itwill be noted that an explanatory text relating to the implementation bythe secondary customer sub-application of the two aforementionedswitching mechanisms (commands and responses respectively) can beobtained by making the following transposition:

-   -   we depart from the explanatory text above in the event of the        customer task application no.2 being “single block”, and    -   it is considered that it is the secondary customer        sub-application which is involved (instead of customer task        application no.2).

In appendix 1 will be found a detailed presentation of some level 1source functions, on which the customer initialisation applications 6 aand the customer task applications 6 b, 6 c are based.

In appendix 2 will be found a detailed presentation of some level 2source functions on which the customer task application no.2 and themain and secondary (in the case of the variant) customersub-applications, introduced in the context of the newradiocommunication module control technique according to the invention,are based (see description above in relation to FIG. 8).

Appendix 1

Detailed Presentation of Some Level 1 Source Functions, on which theCustomer Initialisation Application and the Customer Task Applicationsare Based.

Preliminary observation: the following list is not exhaustive. It willbe noted that all the examples of level 1 source functions, associatedwith the customer task applications, relate to the “OS” block. Even ifthey do not feature on the list below, it is clear that there are agreat many level 1 source functions, associated with the customer taskapplications, which relate to the “HWL” and “layer 3 GSM” blocks (anexample of a function relating to each of these two blocks can be foundin the explanations above given in relation to the figures.

A1) “wm_apmGlobalInit_level1( )

Level 1 global initialisation source function, the role of which is toprovide the main software program 3 with information allowing it toinitialise and to interact with each customer task application 6 b, 6 c.

A2) “apmAppliInit nx level1( )

Level 1 initialisation source function that allows a customer taskapplication no.x to be initialised. This function is called upon oncewhen the relevant customer task application is initialised.

Exact Name:

void AppliInit1(wm_apmInitTypw_e InitType);

Parameters:

InitType

indicates the item launching the initialisation. The correspondingvalues are:

typedef enum { WM_APM-POWER_ON, WM_APM_REBOOT_FROM_EXCEPTION }wm_apmInitType_e;

WM_APM-POWER_ON signifies that a normal power-up has occurred.

WM_APM_REBOOT_FROM_EXCEPTION signifies that the module has been rebootedfollowing an exception.

A3) “apmAppliParser_nx_level1( )”

Level 1 source function of receiving and processing a message from themain software program. This function is called upon each time a customerapplication receives a message from the main software program.

Exact Name:

bool AppliParser1(wm_apmMsg_t*Message);

Parameters: Message: The “Message” structure depends on its type:typedef struct { u16 u16 s16 s16MbxSrc; MbxDst; Length; TypMsg;/*Sourcemailbox*/ /*Addressee mailbox*/ /*Length of message body*/ /*type ofmessage received: indicates the structure associated with the messagebody*/ }wm_apmHeader_t; typedef struct { wm_apmHeader_t Header;/*message header*/ wm_apmBody_t Body; /*specific message body*/ }wm_apmMsg_t; TypMsg may assume the following values: WM_OS_TIMER:signifies that the message is sent on expiry of a time delay.WM_HWL_xxx... WM_L3xxx ...Returned Values:

The return parameter indicates whether the message has been processed(true) or not (false).

A4) “Global Task Information” define WM_OS_MAX_CUST_TASK 4 /*customertask application (or “customer task”) identifiers*/ enum {WM_OS_CUST_TASK_1, /*High priority task*/ WM_OS_CUST_TASK_2,WM_OS_CUST_TASK_3, WM_OS_CUST_TASK_4, /*Low priority task*/ }; /*Mailboxidentifiers*/ typedef enum { /*Customer task mailbox (MBX) identifiers*/WM_OS_MBX_CUST_1/*MBX associated with WM_OS_CUST_TASK_1*/WM_OS_MBX_CUST_2/*MBX associated with WM_OS_CUST_TASK_2*/WM_OS_MBX_CUST_3/*MBX associated with WM_OS_CUST_TASK_3*/WM_OS_MBX_CUST_4/*MBX associated with WM_OS_CUST_TASK_4*/ /*Mainsoftware program task mailbox (MBX) identifiers*/ WM_OS_MBX_CORE_CC,/*associated with Call Control management*/ WM_OS_MBX_CORE_SS,/*associated with Supplementary Services management*/WM_OS_MBX_CORE_SMS,/* associated with Short Message Servicesmanagement)*/ WM_OS_MBX_CORE_MM,/* associated with Mobilitymanagement)*/ WM_OS_MBX_CORE_RR,/* associated with Radio Resourcemanagement)*/ WM_OS_MBX_CORE_DATA,/* associated with Data Callmanagement*/ WM_OS_MBX_CORE_IR,/* associated with Infrared management)*/WM_OS_MBX_CORE_IP,/* associated with IP management*/WM_OS_MBX_CORE_SIM,/* associated with SIM management*/ /*HWL and BATTmailbox (MBX) identifiers*/ WM_OS_MBX_CORE_HWL,/* associated with HWLmanagement*/ WM_OS_MBX_CORE_BATT,/ associated with Battery management*/}Mbx_t;A5)“wm_osSendMsg_level1( )”

Level 1 source function of sending a message (previously allocated andcompleted) to another customer task application, via the interfaceapplication and the main software program.

Exact Name

bool wm_osSendMsg (void*Msg)

Parameters:

Msg: the message to be sent

Returned Values:

The return parameter indicates whether the message has been sent (true)or not (false).

A6) “wm_osStartTimer_level1”

Level 1 source function of triggering a time delay in the main softwareprogram.

A7) “wm_osStopTimer_level1”

Level 1 source function of stopping a time delay previously triggered inthe main software program.

A8) “wm_osDebugTrace_level1”

Level 1 source function of tracing the debugging operation

A9) “wm_osDebugFatalError_level1”

Level 1 source function of indicating a fatal error and of rebooting

A10) “wm_osWriteFlashData_level1”

Level 1 source function of writing data in a memory included in theradiocommunication module

A11) “wm_osReadFlashData_level1”

Level 1 source function of reading data in a memory included in theradiocommunication module

A12) “wm_osGetLenFlashData_level1”

Level 1 source function of providing the length of data stored in amemory included in the radio communication module

A13) “wm_osDeleteFlashData_level1”

Level 1 source function of deleting data stored in a memory included inthe radiocommunication module

A14) “wm_osGetAllowedMemoryFlashData_level1”

Level 1 source function of providing the quantity of memory allocatedwithin a memory included in the radiocommunication module

A15) “wm_osGetFreeMemoryFlashData_level1”

Level 1 source function of providing the quantity of free memory withina memory included in the radiocommunication module

A16) “wm_osGetMemoryFlashData_level1”

Level 1 source function of requesting memory allocation within a memoryincluded in the radiocommunication module

A17) “wm_osReleaseMemoryFlashData_level1”

Level 1 source function of requesting the release of memory within amemory included in the radiocommunication module.

A18) “wm_MbxSubscribe”

Level 1 source function of subscribing to a mailbox service managed bythe main software program, allowing the customer task application to getitself allocated a mailbox which is specific to it and in which itwishes to receive information coming from at least one predeterminedsource.

The default setting is for all the information to be sent toWM_OS_CUST_MBX_(—)1, i.e. to the mailbox associated withWM_OS_CUST_TASK_(—)1 (customer task application no.1).

Exact Name:

bool

wm_MbxSubscribe(wm_apmMbxSubscription_t*TabMbxSubs);

Parameters:

TabMbsSubs:

Table containing the entities and their associated mailboxes.

Typedef struct { Mbx_t MbxSrc;/* source mailbox, identifies one of theWM_OS_CORE_MBX_x*/ Mbx_t MbxDst; /* destination mailbox, identifies oneof the WM_OS_CUST_MBX_x*/ } wm_apmMbxSubscription_t;Returned Values:

The return parameter indicates whether the subscription has beenprocessed (true) or not (false).

Appendix 2:

Detailed Presentation of Some Level 2 Source Functions, on which areBased Customer Task Application No.2 and the Main and Secondary CustomerSub-Applications (in the Case of the Variant), Introduced in the Contextof the New Radiocommunication Module Control Technique According to theInvention.

Preliminary observation: the following list is not exhaustive.

A1) “wm_osMsgParserSubscribe_level2( )”

function of subscribing customer task application no.2 or a (main orsecondary) customer sub-application, with customer task applicationno.1, to a service for receiving messages from customer task applicationno.1. Customer task application no.1 stores this function and will useit each time it has something to transmit to the (main or secondary)customer sub-application involved.

Exact Name:

void

wm_osMsgParserSubscribe_level2(void(*SubscribeFunction) (wm_apmMsg_t*));

Parameters:

SubscribeFunction(wm_apmMsg_t*): a function offered by the calling party(customer task application no.2 or (main or secondary) customersub-application so that the software program can send it messages. Aprototype of this function offered is detailed below(“wm_apmAppliParser_level2” for the main customer sub-application, or“wm_app2MsgParser_level2” for the secondary customer sub-application).

Returned Value:

The return parameter indicates whether the subscription has beenprocessed (TRUE) or not (FALSE).

A2)“wm_osMsgParserUnsubscribe_level2( )”

function of stopping the subscription of customer task application no.2,or of a (main or secondary) customer sub-application, with customer taskapplication no.1, to a service for receiving messages coming fromcustomer task application no.1. Customer task application no.1 forgetsthe previously stored function.

Exact Name:

boolwm_osMsgParserUnsubscribe_level2(void(*SubsFunction)(wm_apmMsg_t*));

Parameters:

SubsFunction(wm_apmMsg_t*): function offered by the calling party(customer task application no.2 or (main or secondary) customersub-application) so that customer task application no.1 is able to sendit messages. This function must be the same as that given at the time ofsubscribing to this service, otherwise the subscription stop will not beprocessed.

Returned Value:

The return parameter indicates whether the subscription stop has beenprocessed (TRUE) or not (false)

A3)“wm_app2Pipe_level2(FunctionTypefunction, . . . )”

Prototype of the function which the secondary customer sub-applicationmust offer the main customer sub-application in order to interact withit. This is a variable argument function, the number and type ofarguments depends on the first “function” parameter.

Exact Name:

void wm_app2Pipe_level2(FunctionTypefunction . . . );

Parameters:

function: function requested. It implies the number and the type of thefollowing parameters. Some values are reserved (for example from 0 to127), the others (for example from 128 to 255) are left free for use byparticular dialogues between the main customer sub-application and thesecondary customer sub-application. A3-1)Variableparameters forfunction=WM_APP_FUNCTION_INIT: void wm_app2Pipe_level2 ( FunctionType_tfunction, InitType_t Init, void (*MainAppDialogFunction) (wm_apmMsg_t*),void *(*SecondaryAppDialogFunction) (wm_apmMsg_t*), );

The secondary sub-application must be initialised and do its processing.

InitType_t Init: the initialisation type (APM_INIT_POWER_ON orAPM_INIT_REBOOT)

void(*MainAppDialogFunction) (wm_apmMsg_t*): function address which mustbe used by the secondary customer sub-application to send messages tothe main customer sub-application. If such a function is not required bythe main customer sub-application, it gives a NULL value.

void: *(* SecondaryAppDialogFunction)(wm_apmMsg_t*): The secondarycustomer sub-application must give the address of the function it offersthe main customer sub-application. If the secondary customersub-application does not offer this function, it must set the value toNULL (A3-2) Varaible parameters for function=WM_APP_FUNCTION_STOP: voidwm_app2Pipe_level2 ( FunctionType_t function );

The secondary customer sub-application must stop its processingoperations, unsubscribe from all its subscriptions, and release all theresources used.

A4) “wm_apmAppliParser_level2”

Prototype of the source function that customer task application no.2must offer in order to receive messages from customer task applicationno.1. The parameter forming message of this processing (also known as“receive”) function contains particularly an AT command or a response toan AT command.

It will be noted that everything which is described below also appliesto the source function, in which the main customer sub-application orthe secondary customer sub-application wishes to receive messages comingfrom the customer task application no.1. Only the name of the functionitself changes (for example “wm_app2MsgParser_level2” instead of “wmapmAppliParser_level2”).

Exact Name:

bool wm_apmAppliParser_level2(wm_apmMsg_t*Message);

Parameters

Message

The structure of the message changes with each type of message received:typedef struct { s16 MsgTyp; /*“MsgTyp” is a received message type,which allows the associated message body structure to be determined*/wm_apmBody_t Body; /*“Body” is a specific message body*/ } wm_apmMsg_t;

Values of “MsgTyp”:

WM_AT_SEND_RSP

The message contains a response to an AT command previously sent tocustomer task application no.1 by customer task application no.2

WM_AT_UNSOLICITED

The message contains an unsolicited AT command

WM_AT_CMD_PRE_PARSER

The message contains an AT command sent by an external customerapplication, via customer task application no.1

WM_AT_RSP_PRE_PARSER

The message contains an AT response arising from the execution bycustomer task application no.1 of an AT command coming from an externalapplication.

WM_OS_TIMER

The message is sent on the expiry of a time delay.

The structure of the body is: typedef union { /*Are included here allthe specific structures associated with message types “MsgTyp”  *//*WM_AT_SEND_RSP  */ wm_atResponse_t  ATResponse; /*WM_AT_UNSOLICITED */ wm_atUnsolicited_t  ATUnsolicited; /*WM_AT_CMD_PRE_PARSER  */wm_atCmdPreParser_t  ATCmdPreParser; /*WM_AT_RSP_PRE_PARSER  */wm_atRspPreParser_t  ATRspPreParser /*WM_OS_TIMER  */ wm_osTimer_tOSTimer; }wm_apmBody_t;

The sub-structures of the body are: Body for WM_AT_SEND_RSP: typedefstruct { wm_atSendRspType_e Type; u16 StrLength; /*Length of strData*/char StrData[1]; /*AT response*/ }wm_atResponse_t; typedef enum {WM_AT_SEND_RSP_TO_EMBEDDED, WM_AT_SEND_RSP_TO_EXTERNAL,WM_AT_SEND_RSP_TO_BROADCAST }wm_atSendRspType_e; (see the detail on the“wm_atSendCommand_level2” function, for the description of“wm_atSendRspType_e description”). Body for WM_AT_UNSOLICITED: typedefstruct { wm_atUnsolicited_e Type; u16 StrLength; char StrData[1];}wm_atUnsolicited_t; typedef enum { WM_AT_UNSOLICITED_TO_EXTERNAL,WM_AT_UNSOLICITED_TO_EMBEDDED, WM_AT_UNSOLICITED_TO_BROADCAST}wm_atUNSOLICITED_e; (see the detail on the“wm_atUnsolicitedSubscription_level2” function, for the description of“wm_atUnsolicited_e”). Body for WM_AT_CMD_PRE_PARSER: typedef struct {wm_atCmdPreSubscribe_e Type; u16 StrLength; char StrData[1];}wm_atCmdPreParser_t; typedef enum {WM_AT_CMD_PRE_WAVECOM_TREATMENT,/*Defaultvalue */WM_AT_CMD_PRE_EMBEDDED_TREATMENT, WM_AT_CMD_PRE_BROADCAST}wm_atCmdPreSubscribe_e; (see the detail on the function“wm_atRspPreParserSubscribe_level2”, for the description of“wm_atCmdPreSubscribe_e”). Body for WM_AT_RSP_PRE_PARSER: typedef struct{ wm_atRspPreSubscribe_e Type; u16 StrLength; char StrData[1];}wm_atRspPreParser_t; typedef enum {WM_AT_RSP_PRE_WAVECOM_TREATMENT,/*Defaultvalue */WM_AT_RSP_PRE_EMBEDDED_TREATMENT, WM_AT_RSP_PRE_BROADCAST}wm_atRspPreSubscribe_e; (see the detail on the function“wm_atRspPreParserSubscribe_level2”, for the description of“wm_atRspPreSubscribe_e”). Body for WM_OS_TIMER: typedef struct { u8Ident; /*Time Delay Identifier*/ }wm_osTimer_t; (see the detail on the“wm_osStartTimer_level2” function, for the description of “Ident”).Returned Values

The return parameter indicates whether the message has been processed(TRUE) or not (FALSE).

A5) “wm_atSendCommand_level2”

function of sending to customer task application no.1 at least one ATcommand, one parameter of which indicates the applications (namely theembedded customer task application no.2 (or the (main or secondary)customer sub-application) and/or the external customer application) towhich the response arising from the execution of this AT command isaddressed.

Exact Name void wm_atSendCommand_level2 (u16 AtStringSize,wm_atSendRspType_e ResponseType, char *AtString,);ParametersAtString

This parameter can be any type of AT command string, in ASCIIcharacters. Several strings may be sent at the same time

AtStringSize

Size of the previous parameter: AtString.

Response Type

Type of response typedef enum { WM_AT_SEND_RSP_TO_EMBEDDED, /*Defaultvalue*/ WM_AT_SEND_RSP_TO_EXTERNAL WM_AT_SEND_RSP_BROADCAST}wm_atSendRspType_e;WM_AT_SEND_RSP_TO_EMBEDDED

All the responses are redirected to the embedded customer taskapplication no.2 (or the (main or secondary) customer sub-application.This is the default mode

WM_AT_SEND_RSP_TO_EXTERNAL

All the responses are redirected to the external customer application(PC).

WM_AT_SEND_RSP_BROADCAST

All the responses are redirected (“broadcast”) to the embedded customertask application no.2 (or the (main or secondary) customersub-application) and the external customer application (PC).

A6) “wm_atUnsolicitedSubscription_level2”

function of subscribing with customer task application no.1 to anunsolicited AT command reception service, one parameter of whichindicates to which addressee applications (namely the embedded customertask application no.2 (or the (main or secondary) customersub-application) and/or the external customer application) each of theunsolicited AT commands is to be redirected.

Exact Name:

void

wm_atUnsolicitedSubscription_level2(wm_atUnsolicited_e Unsolicited);

Parameters:

Unsolicited

This parameter describes the action carried out when an unsolicited ATcommand arrives. typedef enum { WM_AT_UNSOLICITED_TO_EXTERNAL, /*Defaultvalue*/ WM_AT_UNSOLICITED_TO_EMBEDDED, WM_AT_UNSOLICITED_broadcast}wm_atUnsolicited_e;

WM_AT_UNSOLICITED_TO_EXTERNAL

All unsolicited commands will be redirected to the external customerapplication (PC) (default mode)

WM_AT_UNSOLICITED_TO_EMBEDDED,

All unsolicited commands will be redirected to the embedded customertask application no.2 (or the (main or secondary) customersub-application)

WM_AT_UNSOLICITED_broadcast

All unsolicited commands will be redirected (broadcast) to the externalcustomer application (PC) and the embedded customer task applicationno.2 (or the (main or secondary) customer sub-application).

A7) “wm_atCmdPreParserSubscribe_level2”

function of subscribing with customer task application no.1 to an ATcommand switching service, one parameter of which indicates to whichaddressee applications (namely the embedded customer task applicationno.2 (or the (main or secondary) customer sub-application) and/orcustomer task application no.1) each of the AT commands coming from anexternal application is to be switched.

Exact Name: void wm_atCmdPreParserSubscribe_level2(wm_atCmdPreSubscribe_e SubscribeType)Parameters:

This parameter describes the action taken when an AT command arrivestypedef enum { WM_AT_CMD_PRE_WAVECOM_TREATMENT, /*Default mode*/WM_AT_CMD_PRE_EMBEDDED_TREATMENT WM_AT_CMD_PRE_BROADCAST}wm_atCmdPreSubscribe_e;WM_AT_CMD_PRE_WAVECOM_TREATMENT

The embedded customer task application no.2 (or the (main or secondary)customer sub-application) does not want to filter (or to spy on) thecommands sent by the external customer application (default mode).

WM_AT_CMD_PRE_EMBEDDED_TREATMENT

The embedded customer task application no.2 (or the (main or secondary)customer sub-application wants to filter the commands sent by theexternal customer application

WM_AT_CMD_PRE_BROADCAST

The embedded customer task application no.2 (or the (main or secondary)customer sub-application wants to spy on the commands sent by theexternal customer application

A8) “wm_atRspPreParserSubscribe_level2”

function of subscribing with customer task application no.1 to an ATresponse switching service, one parameter of which indicates to whichaddressee applications (namely the embedded customer task applicationno.2 (or the (main or secondary) customer sub-application) and/or theexternal customer application) each of the AT responses arising from theexecution by customer task application no.1 of an AT command coming froman external application is to be switched.

Exact Name:

void wm_atRspPreParserSubscribe_level2

wm_atRspPreSubscribe_e SubscribeType

Parameters:

This parameter describes the action taken when an AT command arrivestypedef enum { WM_AT_RSP_PRE_WAVECOM_TREATMENT/*Default value*/WM_AT_RSP_PRE_EMBEDDED_TREATMENT WM_AT_RSP_PRE_BROADCAST}wm_atRspPreSubscribe_e;WM_AT_RSP_PRE_WAVECOM_TREATMENT

The embedded customer task application no.2 (or the (main or secondary)customer sub-application) does not want to filter (or to spy on) theresponses sent by the external customer application (default mode).

WM_AT_RSP_PRE_EMBEDDED_TREATMENT

The embedded customer task application no.2 (or the (main or secondary)customer sub-application) wants to filter the responses sent by theexternal customer application

WM_AT_RSP_PRE_BROADCAST

The embedded customer task application no.2 (or the (main or secondary)customer sub-application) wants to spy on the responses sent by theexternal customer application

A9) “wm_atSendRspExternalApp_level2”

function of sending to the external customer application, via customertask application no.1, at least one response. The use of this functionis only possible if a previous subscription has been made to theresponse switching service, with the switching of one copy of theresponses particularly to the embedded customer task application no.2(or the (main or secondary) customer sub-application).

Exact Name: void wm_atSendRspExternalApp_level2 (u16 AtStringSize, char*AtString,);Parameters:AtString

can be any type of AT response string, in ASCII characters

AtStringSize

Size of the previous parameter: AtString

A10) Data Flow Service Level 2

function of sending and/or receiving data by the embedded customer taskapplication no.2 (or the (main or secondary) customer sub-application),via customer task application no.1, after a data communication has beenset up.

1. A radiocommunication module of the type that hosts and runs a mainsoftware program including: an operating system management application,a radio communication management application, an application formanaging peripheral devices that can be connected to the radiocommunication module, characterised in that each of said applicationsincluded in the main software program is associated with a set of level1 executive functions, in that said radio communication moduleadditionally hosts and runs at least one customer software programincluding at least one customer application, associated with a set oflevel 1 source functions, and in that said main software program and/orsaid customer software program include(s) a level 1 interfaceapplication, allowing level 1 source functions, associated with saidcustomer application, to interface with level 1 executive functions,associated with said operating system management application and with atleast one of said radio communication management and peripheral devicemanagement applications, so as to open up, to at least one customerapplication, access to at least some of the functionalities of the mainsoftware program.
 2. Radiocommunication module according to claim 1,characterized in that said interface application is included in saidcustomer software program.
 3. Radiocommunication module according toclaim 1, characterized in that said customer software program includes abinary file containing at least two customer applications. 4.Radiocommunication module according to claim 1, characterized in thatsaid customer software program includes at least two binary files, eachcontaining at least one customer application.
 5. Radiocommunicationmodule according to claim 1, characterized in that said customersoftware program includes a global initialization customer application,and at least one customer task application carrying out at least onereal-time task, and in that the set of level 1 source functionsassociated with the global initialization customer application includesa level 1 global initialization source function, the role of which is toprovide the main software program with information allowing it toinitialize and to interact with each customer task application. 6.Radiocommunication module according to claim 1, characterized in thatsaid customer software program includes at least two customer taskapplications, each associated with a set of level 1 source functions andeach carrying out at least one distinct real-time task, and in that saidmain software program and/or said customer software program include(s)means of sharing out calculation resources between said customer taskapplications, so as to allow a real-time multi-task operation. 7.Radiocommunication module according to claim 5, characterized in thatthe set of level 1 source functions associated with each customer taskapplication includes a level 1 initialization source function, allowingsaid customer task application to be initialized.
 8. Radiocommunicationmodule according to claim 7, characterized in that said informationprovided by the global initialization source function to the mainsoftware program includes: the number of customer task applications tobe initialized; for each customer task application to be initialized,the corresponding level 1 initialization source function. 9.Radiocommunication module according to claim 5, characterized in thatthe set of level 1 source functions associated with each customer taskapplication includes a level 1 source function of receiving andprocessing a message from the main software program, one parameter ofsaid level 1 receive and process source function being said message. 10.Radiocommunication module according to claim 9, characterized in thatsaid information provided by the level 1 global initialization sourcefunction to the main software program includes additionally: for eachcustomer task application to be initialized, the level 1 receive andprocess source function.
 11. Radiocommunication module according toclaim 5, characterized in that the set of level 1 source functionsassociated with each customer task application includes a level 1 sourcefunction of subscribing to a mailbox service managed by the mainsoftware program, allowing said customer task application to get itselfallocated a mailbox which is specific to it and in which it wishes toreceive information coming from least one predetermined source. 12.Radio communication module according to claim 11, characterized in thateach predetermined information source is a mailbox allocated to at leastone main task carried out by the main software program, and containinginformation which said main task wishes to communicate to one or moreother entities.
 13. Radio communication module according to claim 1,characterized in that said customer software program includes at leastone customer task application, associated with a set of level 1 sourcefunctions and each carrying out at least one distinct real-time task,and in that the set of level 1 source functions associated with eachcustomer task application includes at least one function belonging tothe group including: a level 1 source function of sending a message(previously allocated and completed) to another customer taskapplication, via said interface application and said main softwareprogram; a level 1 source function of triggering a time delay in saidmain software program; a level 1 source function of stopping a timedelay previously triggered in said main software program; a level 1source function of tracing the debugging; a level 1 source function ofshowing a fatal error and rebooting; a level 1 source function ofwriting data into a memory included in the radiocommunication module; alevel 1 source function of reading data in a memory included in theradiocommunication module; a level 1 source function of providing thelength of data stored in a memory included in the radiocommunicationmodule; a level 1 source function of deleting data stored in a memoryincluded in the radiocommunication module; a level 1 source function ofproviding the quantity of memory allocated within a memory included theradiocommunication module; a level 1 source function of providing thequantity of free memory within a memory included the radiocommunicationmodule; a level 1 source function of requesting memory allocation withina memory included the radiocommunication module; a level 1 memory ofrequesting the release of memory within a memory included in theradiocommunication module.
 14. Radiocommunication module according toclaim 1, characterized in that the embedded customer software programand the main software program each use a different part of the samerandom access memory, an attempt by one of the software programs toaccess a part of the random access memory reserved for the othersoftware program causing a stop in operation.
 15. Radiocommunicationmodule according to claim 1, characterized in that it is included in adevice belonging to the group including: radiocommunication terminals;devices, other than radiocommunication terminals, requiring a wirelesscommunication functionality; modems.
 16. Radiocommunication moduleaccording to claim 1, characterised in that said customer softwareprogram includes at least: a first customer application carrying out afirst real-time task of executing control commands, sent to said firstapplication by at least one customer control application and belongingto a predetermined set of control commands, said first customerapplication being based particularly on a set of level 2 executivefunctions, specific to the control commands and each allowing at leastone of said control commands to be executed, a second customerapplication carrying out a second real-time task such that said secondcustomer application plays at least one of the following roles: the roleof a customer control application, sending control commands to the firstcustomer application, and receiving from the customer applicationresponses arising from the execution of some of the control commands;the role of a customer supervision application, managing the executionof control commands sent by a customer control application, saidcustomer application being external, hosted and run by third partyequipment engaging with the radiocommunication module; said secondcustomer application being based particularly on a set of level 2 sourcefunctions, specific to the control commands and each allowing controlcommands or responses to control commands to be sent or received, to orfrom the first customer application, a level 2 interface application,specific to the control commands, allowing said level 2 source andexecutive functions to interface, said level 2 interface applicationitself being based on said level 1 interface application. 17.Radiocommunication module according to claim 16, characterized in that,to allow the second customer application to play the role of a customercontrol application: the second customer application includes means ofsending control commands to the executive means included in the firstcustomer application; the first customer application includes means ofsending responses, arising from the execution of some of the controlcommands by the executive means included in the first customerapplication, to the second customer application; the second customerapplication includes means of processing the responses sent to it by thefirst customer application.
 18. Radiocommunication module according toclaim 16, characterized in that, to allow the second customerapplication to play the role of a customer supervision application: thefirst customer application includes command switching means, as afunction of a pre-set command switching policy, so as to transmit thecontrol commands coming from the external customer application to thesecond customer application and/or to the executive means included inthe first customer application; the second customer application includesmeans of processing the control commands switched to it by said commandswitching means.
 19. Radiocommunication module according to claim 18,characterized in that the second customer application includes means ofselecting the command switching policy applied by said command switchingmeans, among a set of command switching policies such that respectively:the control commands from the external customer application aretransmitted only to the executive means included in the first customerapplication; the control commands from the external customer applicationare transmitted only to the second customer application; the controlcommands from the external customer application are transmitted to theexecutive means included in the first customer application and thesecond customer application.
 20. Radiocommunication module according toclaim 18, characterized in that said command processing means take, foreach command, at least one decision belonging to the group thatincludes: sending the control command to the executive means included inthe first customer application, the second customer applicationincluding to this end means of sending control commands to the executivemeans; providing or not providing a response, solely as a function of atleast one piece of information relating to the command, withoutexecuting the command, the second customer application including to thisend means of sending the response to the external customer application,via the second customer application.
 21. Radiocommunication moduleaccording to claim 16, characterized in that, to allow the secondcustomer application to play the role of a customer supervisionapplication: the first customer application includes response switchingmeans, as a function of a pre-set response switching policy, so as totransmit responses, arising from the execution of some of the controlcommands by the executive means included in the first customerapplication, to the second customer application and/or to the externalcustomer application; the second customer application includes means ofprocessing responses switched to it by said response switching means.22. Radiocommunication module according to claim 21, characterized inthat the second customer application includes means of selecting theresponse switching policy applied by said response switching means,among a set of response switching policies such that respectively: theresponses from the executive means are transmitted solely to theexternal customer application; the responses from the executive meansare transmitted solely to the second customer application; the responsesfrom the executive means are transmitted to the second customerapplication and to the external customer application. 23.Radiocommunication module according to claim 16, characterized in thatsaid set of level 2 source functions includes particularly a function ofprocessing a message from the first application, one parameter of saidprocessing function being said message.
 24. Radiocommunication moduleaccording to claim 23, characterized in that said message forming aparameter of said processing function has a structure including: a firstfield containing a piece of information relating to the type of saidmessage; a second field containing the specific body of said message.25. Radiocommunication module according to claim 24, characterized inthat the type of said message belongs to the group including: a messagecontaining a response to a control command previously sent to the firstapplication by the second application; a message containing anunsolicited control command; a message containing a control command sentby an external customer application, via the first application; amessage containing a response arising from the execution by the firstapplication of a control command sent by the external customerapplication; a message sent on expiry of a time delay. 26.Radiocommunication module according to claim 23, characterized in thatsaid set of level 2 source functions additionally includes at least onefunction belonging to the group including: a level 2 source function ofsending to the first application at least one control command, a firstparameter of said send function being said at least one control command,a second parameter of said send function indicating the application(s),namely the second application and/or the external customer application,to which the response arising from the execution of said control commandis to be addressed; a level 2 source function of subscribing with thefirst application to a service of receiving unsolicited controlcommands, one parameter of said subscription function indicating towhich addressee applications, namely the second customer applicationand/or the external customer application, each of the unsolicitedcontrol commands is to be redirected; a level 2 source function ofsubscribing with the first application to a control command switchingservice, one parameter of said subscription function indicating to whichapplications, namely the first application and/or the secondapplication, each of the control commands from the external customerapplication is to be switched; a level 2 source function of subscribingwith the first application to the response switching service, oneparameter of said subscription function indicating to whichapplication(s), namely the external customer application and/or thesecond application, each of the responses arising from the execution bythe first application of a control command is to be switched; a level 2source function of sending to the external customer application, via thefirst application, at least one response, one parameter of said sendfunction being said at least one response.
 27. Radiocommunication moduleaccording to claim 16, characterized in that said set of controlcommands is a standard set of AT commands.
 28. Radiocommunication moduleaccording to claim 27, characterized in that said set of controlcommands includes, apart from the standard AT commands, an additional ATcommand (AT+WDWL), known as a load command, allowing the externalcustomer application to load a new second customer application or thetotality of a new customer software program in the radiocommunicationmodule.
 29. Radiocommunication module according to claim 27,characterizsed in that said set of control commands includes, apart fromthe standard AT commands, an additional AT command, known as thedisabling command, allowing the external customer application to disablethe second customer application.
 30. Radiocommunication module accordingto claim 16, characterized in that said second customer applicationincludes a main customer sub-application and at least one secondarycustomer sub-application, slave of the main customer sub-application,the processing operations carried out by said second customerapplication being shared out between said main customer sub-applicationand said least one secondary customer sub-application. 31.Radiocommunication module according to claim 30, characterized in thatsaid customer software program includes a global initialization customerapplication, and at least one customer task application carrying out atleast one real-time task, and in that the set of level 1 sourcefunctions associated with the global initialization customer applicationincludes a level 1 global initialization source function, the role ofwhich is to provide the main software program with information allowingit to initialize and to interact with each customer task application,and in that the set of level 1 source functions associated with eachcustomer task application includes a level 1 initialization sourcefunction, allowing said customer task application to be initialized, andit that said level 1 initialization source function is included in theset of level 1 source functions associated with the second customer taskapplication and allows said main customer sub-application to beinitialized.
 32. Radiocommunication module according to claim 31,characterized in that the main customer sub-application is associatedwith a set of level 2 source functions including a level 2 sourcefunction of subscribing to a service of sending messages from the firstcustomer application, and in that at this subscription, the maincustomer sub-application sends the first customer application theaddress of a level 2 message processing source function, in which themain customer sub-application wishes to receive messages from the firstcustomer application.
 33. Radiocommunication module according to claim30, characterized in that the secondary customer sub-application isassociated with a set of level 2 source functions including a level 2source function of initializing the secondary customer sub-application,which is called upon by the main customer sub-application. 34.Radiocommunication module according to claim 33, characterized in thatthe set of level 2 source functions associated with the secondarycustomer sub-application includes a level 2 source function ofsubscribing to a service of sending messages from the first customerapplication, and in that at this subscription, the secondary customersub-application sends the first customer application the address of alevel 2 message processing source function, in which the secondarycustomer application wishes to receive messages from the first customerapplication.
 35. Radiocommunication module according to claim 33,characterized in that said level 2 source function of initializing thesecondary customer sub-application includes at least one parameterallowing a dialogue mechanism to be implemented between the maincustomer sub-application and the secondary customer sub-application. 36.Radiocommunication module according to claim 33, characterized in thatthe set of level 2 source functions associated with the secondarycustomer sub-application includes a level 2 source function of stoppingthe secondary customer sub-application, which is called upon by the maincustomer sub-application.
 37. Radiocommunication module according toclaim 33, characterized in that the set of level 2 source functionsassociated with the secondary customer sub-application includes a level2 source function of unsubscribing from said service of sending messagesfrom the first customer application.
 38. Process of opening up access toat least some of the functionalities of a main software program of aradiocommunication module, said radiocommunication module being of thetype that hosts and runs a main software program including: an operatingsystem management application, a radio communication managementapplication, an application for managing peripheral devices that can beconnected to the radio communication module, characterized in that eachof said applications included in the main software program is associatedwith a set of level 1 executive functions, in that said radiocommunication module additionally hosts and runs at least one customersoftware program including at least one customer application, associatedwith a set of level 1 source functions, and in that said main softwareprogram and/or said customer software program include(s) a level 1interface application, allowing level 1 source functions, associatedwith said customer application, to interface with level 1 executivefunctions, associated with said operating system management applicationand with at least one of said radio communication management andperipheral device management applications.